A graphical user interface design environment exposes libraries of user interface (UI) elements to programmers and graphical designers. The programmer/graphical designer can combine and physically arrange one or more of these UI elements into graphical user interface aggregates, such as forms, web pages, windows and dialogs. The presentation of these aggregates is controlled by a deployed and running software application. Current client/server application development and runtime environments allow a programmer to visually assemble a client-side graphical user interface aggregate, which is rendered at runtime from a text-based user interface definition.
Often, the design environment provides a core library that contains a base set of UI elements. UI element suppliers may define and provide their own sets of UI elements, which a programmer/graphical designer also can include in an aggregate. These UI elements can include newly invented UI elements and/or new UI elements that are created by combining multiple base UI elements. To date, UI element suppliers are typically required to provide both a runtime element to be used by an executing software application and a visualizer that represents the runtime element in the design environment. The visualizer enables the design environment to visually show and work with a design-time representation of the runtime element. Typically, the design environment requires the UI element supplier to write the visualizer using an application programming interface (API) of the particular design environment.